Page({
  data: {
    // 倒计时组件是否出现？初始化NO
    countDownVisible: false,
    mobile: "",
    code: "",
  },



  // 点击【获取验证码】
  async change() {
    // 1、校验别人干了
    if (!this.checkMobile()) return

    // 3、通过 让倒计时组件出现
    this.setData({
      countDownVisible: true // 倒计时组件出现
    })

    // 4、真实：把手机发送给后台：后台真实调用某种短信服务，真的给大家手机号发送验证码短信(复制验证码)
    //    学校：模拟，调用后台接口，把手机号发送给后台，前端返回验证码
    let {
      data
    } = await wx.http({
      url: '/code',
      data: {
        mobile: this.data.mobile
      }
    })
    // 假设打开一个短信，把验证码复制下
    wx.setClipboardData({
      data: data.code
    })

  },
  // 倒计时结束
  finish() {
    this.setData({
      countDownVisible: false
    })
  },


  // 对手机号单独校验：
  checkMobile() {
    // 校验
    //   1、手机号正则：百度
    let reg = /^[1][3-8][0-9]{9}$/
    let key = reg.test(this.data.mobile)

    //   2、不通过
    if (key == false) {
      wx.utils.toast('手机号校验不通过')
    }

    //   3。把校验结果：返回
    return key
  },
  // 校验code
  checkCode() {
    //   1、手机号正则：百度
    let reg = /^[0-9]{6}$/
    let key = reg.test(this.data.code)

    //   2、不通过
    if (key == false) {
      wx.utils.toast('验证码校验不通过')
    }

    //   3。把校验结果：返回
    return key
  },

  onLoad(e) {
    this.setData({
      acUrl: e.acUrl
    })
  },
  // 提交数据
  async submit() {
    // 1、提交数据之前：还要进行校验 手机号  验证码6位数字
    //    手机号校验：已经代码写了！不需要再写！不是copy! (功能封装了)
    if (!this.checkMobile()) return
    if (!this.checkCode()) return
    //  2、登录API接口
    let {
      data
    } = await wx.http({
      url: "/login",
      method: "POST",
      data: {
        mobile: this.data.mobile,
        code: this.data.code
      }
    })
    // 3、登录成功后，回到刚才的页面
    wx.setStorageSync('token', 'Bearer ' + data.token)
    wx.setStorageSync('refreshToken', 'Bearer ' + data.refreshToken)
    wx.redirectTo({
      url: this.data.acUrl,
    })
  },

  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
})